Object-oriented programming
part 30/57 · 94.0 KB total
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Date and Darwen have proposed a theoretical foundation that uses OOP as a kind of customizable type system to support RDBMSs, but it forbids objects containing pointers to other objects.cite-ref-thirdmanifesto-53-0[53]
Responsibility- vs. data-driven design
In responsibility-driven design, classes are built around what they need to do and the information they share, in the form of a contract. This is different from data-driven design, where classes are built based on the data they need to store. According to Wirfs-Brock and Wilkerson, the originators of responsibility-driven design, responsibility-driven design is the better approach.cite-ref-wirfs-brock1989-54-0[54]
SOLID and GRASP guidelines
SOLID is a set of five rules for designing good software, created by Michael Feathers:
• Single responsibility principle: A class should have only one reason to change.
• Open/closed principle: Software entities should be open for extension, but closed for modification.
• Liskov substitution principle: Functions that use pointers or references to base classes must be able to use objects of derived classes without knowing it.
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────